package com.zyz.study.controller;

// 导入日期工具类，用于获取当前时间
import cn.hutool.core.date.DateUtil;
// 导入自定义的服务类 FunctionAssistant，用于处理聊天相关逻辑
import com.zyz.study.service.FunctionAssistant;
// 导入 Jakarta 注解，用于资源注入
import jakarta.annotation.Resource;
// 导入 Lombok 日志注解，自动生成日志记录器
import lombok.extern.slf4j.Slf4j;
// 导入 Spring Web 注解，用于定义 REST 控制器和请求映射
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * REST 控制器，处理与函数调用相关的聊天请求
 */
@RestController
@Slf4j // Lombok注解，生成一个名为 log 的日志对象
public class ChatFunctionCallingController
{
    /**
     * 注入 FunctionAssistant 服务，用于执行聊天逻辑
     * @Resource 是 Jakarta 提供的注解，等价于 Spring 的 @Autowired
     */
    @Resource
    private FunctionAssistant functionAssistant;
    /**
     * 测试接口，访问路径：http://localhost:9011/chatfunction/test1
     * 该方法调用 functionAssistant 的 chat 方法，传入一个示例聊天请求字符串，
     * 并打印返回结果，最终返回 success 字符串和当前时间戳以及聊天结果
     * @return 包含成功标识、当前时间和聊天结果的字符串
     */
    @GetMapping(value = "/chatfunction/test1")
    public String test1()
    {
        // 调用聊天助手，发送一条示例指令文本，模拟开具发票
        String chat = functionAssistant.chat("开张发票,公司：李世成高级公司 税号：lsc123123 金额：999.99");
        // 在控制台打印聊天助手返回的回复内容
        System.out.println(chat);
        // 返回给客户端一个字符串，包含当前系统时间和聊天回复内容
        return "success : "+ DateUtil.now() + "\t"+chat;
    }
}
